/*
 * 二分法求方程的根
 *
 * 题目链接：https://programming.pku.edu.cn/probset/94fe0bee6d4c4e68b4b19c3db5d14a33/1a6dada1398f44dbba50bbbbb196c3e0/
 * 作者：lyazj <seeson@pku.edu.cn>
 *
 * 本题所需主要知识点：
 *   - 二分
 *
 * 本题易错点：
 *   - C 语言中错用 int abs(int) 来计算浮点绝对值（C++ 中存在 double abs(double) 重载）
 */

#include <stdio.h>
#include <math.h>

// 待求解的方程
static double f(double x)
{
  return 2*(x*x*x) - 4*(x*x) + 3*x - 6;
}

int main(void)
{
  double l, r, m, fl, fr, fm;

  // 循环输入初始区间，如不满足异号要求，则重新输入
  for(;;) {  // 无限循环，方便适时用 break 跳出
    scanf(" %lf,%lf", &l, &r);
    fl = f(l), fr = f(r);
    if(fl * fr > 0) continue;
    break;
  }

  // 二分迭代
  while(fabs(fl - fr) > 1e-6) {
    // 取中
    m = (l + r) / 2;
    fm = f(m);

    // 折半
    if(fm * fl > 0) l = m, fl = fm;
    else r = m, fr = fm;
  }

  // 注意 m 此时可能未初始化，也可能是 l 或 r 其一，不要直接使用
  printf("x=%.2lf\n", (l + r) / 2);
  return 0;
}
